import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class MST0201 {
    /**
     * 编写代码，移除未排序链表中的重复节点。保留最开始出现的节点。
     *
     * 示例1:
     *  输入：[1, 2, 3, 3, 2, 1]
     *  输出：[1, 2, 3]
     * 示例2:
     *  输入：[1, 1, 1, 1, 2]
     *  输出：[1, 2]
    */
    public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
        val = x;
 }
    }
    public ListNode removeDuplicateNodes(ListNode head) {
            if(head==null){
                return  head;
            }
        HashSet<Integer> listNodes = new HashSet<>();
            listNodes.add(head.val);
            ListNode pos=head;
            while (pos.next!=null){
                ListNode cur=pos.next;

                if (listNodes.add(cur.val)){
                        pos=pos.next;
                }else {
                    pos.next=pos.next.next;
                }
            }

            return  head;
    }
}
